// 运行模式，会提示一些警告和错误信息
let EDebug = true;

/**
 * 一些默认设置
 */
const EDefaultOptions = {
    /**
     * 缓存中当前登录用户key
     */
    currentUser: 'current_user',
    session: {
        /**
         * 管理员强制退出
         */
        force_logout: 'force_logout',
        /**
         * 在其他地方登录,被踢出
         */
        login_elsewhere: 'login_elsewhere',
        /**
         * 超时失效
         */
        invalid: 'invalid'
    },

    /**
     * DataTable 默认参数
     */
    dataTable: {
        page: {
            /**
             * 默认页大小
             */
            size: 15
        },
        layout: {
            /**
             * 默认高度
             *
             * @return {number}
             */
            height: function () {
                let minHeight = 300;
                // 默认保留300px高度
                let height = EUtil.getViewPort().height - 300;
                return Math.max(height, minHeight);
            }
        }
    }
};

/**
 * css 前缀
 */
const cssPrefix = 'e-';

/**
 * 通用url后缀
 */
const urlSuffix = {
    /**
     * 新增默认访问后缀 (示例: /add、/add/{pId})
     */
    add: 'add/',
    /**
     * 根据id删除数据默认访问后缀 (示例: delete/1)
     */
    deleteById: 'delete/',
    /**
     * 根据id修改数据默认访问后缀 (示例: input/1)
     */
    input: 'input/',
    /**
     * 批量删除默认访问后缀 (示例: /batch/delete/1,2,3)
     * 获取当前表单中已选中表格中的checkbox的值使用[,]拼接,并将其作为参数传入
     */
    // batchDelete: 'batch/delete/',
    /**
     * 保存默认访问后缀 (示例: /save/data)
     * 会将当前所在form中表单元素作为参数传入
     */
    saveData: 'save/data',
    /**
     * 查询默认访问后缀 (示例: /select)
     * 会将当前所在form中表单元素作为参数传入
     */
    select: 'select',
    /**
     * 导出数据默认访问后缀 (示例: /export/data)
     * 会将当前所在form中表单元素作为参数传入
     */
    exportData: 'export/data',

    /**
     * 导入数据默认访问后缀 (示例: /export/data/templateCode)
     */
    importData: 'import/data'
};

/**
 * 默认提示文字
 */
const commonTips = {
    /**
     * 登录验证失败
     */
    unauthorized: '请重新登录',
    /**
     * 已登录，无权访问
     */
    forbidden: '无权访问',
    /**
     * 删除
     */
    delete: {
        title: '确定要删除吗？',
        subtitle: '删除后无法恢复，请谨慎操作',
        success: '数据已删除'
    },
    /**
     * 保存
     */
    save: {
        default: '数据已保存',
        // 如果页面中`#id`的`value`为空则使用此提示
        add: '数据已保存',
        // 如果页面中`#id`的`value`不为空则使用此提示
        update: '数据已保存'
    },
    // 批量操作时未勾选数据
    noIds: '请在下方表格中勾选需要操作的数据后重试',
    success: '成功',
    info: '消息',
    warn: '警告',
    error: '错误',
    fail: '失败'
};

/**
 * HttpStatus 状态码
 */
const httpStatus = {
    success: 200, // 成功
    badRequest: 400, // 无效请求 eg：表单验证
    unauthorized: 401, // 会话失效 eg：登录失败、被踢出，在其他地方登录，管理员踢出
    forbidden: 403, // 已登录，无权访问 eg：无权限
    internalServerError: 500 // 异常
};

/**
 * 响应码，由6位数字构成abbccc
 * a   错误级别 0-成功、1-信息、2-警告、3-错误
 * bb  服务模块代码，请从01开始使用00为公共模块
 * ccc 具体错误代码
 */
const resultCode = {
    length: 6,
    // 错误级别
    level: {
        success: '0',
        info: '1',
        warn: '2',
        error: '3'
    },
    modular: {
        // 公用模块
        common: '00'
    },
    code: {
        // 常见错误代码
        success: '000', // 成功
        badRequest: '400', // 无效请求 eg：表单验证
        unauthorized: '401', // 会话失效 eg：登录失败、被踢出，在其他地方登录，管理员踢出
        forbidden: '403', // 已登录，无权访问 eg：无权限
        internalServerError: '500' // 异常
    }
};
let basePath = null;
